package com.anxin.act.task.dao;

import java.util.List;

import com.anxin.act.task.entity.ViewHiTask;
import com.anxin.act.task.entity.WfActRuTask;
import com.anxin.framework.web.dao.BaseDao;
import org.apache.ibatis.annotations.Param;

/**
 * 加签任务Dao接口
 *
 * @author jbs
 * @date 2021-10-22
 */
public interface WfActRuTaskDao extends BaseDao<WfActRuTask>{
    /**
     * 查询加签任务
     *
     * @param id 加签任务ID
     * @return 加签任务
     */
    public WfActRuTask getById(String id);

    /**
     * 查询加签任务列表
     *
     * @param wfActRuTask 加签任务
     * @return 加签任务集合
     */
    public List<WfActRuTask> findList(WfActRuTask wfActRuTask);

    /**
     * 新增加签任务
     *
     * @param wfActRuTask 加签任务
     * @return 结果
     */
    public int insert(WfActRuTask wfActRuTask);

    /**
     * 修改加签任务
     *
     * @param wfActRuTask 加签任务
     * @return 结果
     */
    public int update(WfActRuTask wfActRuTask);

    /**
     * 删除加签任务
     *
     * @param id 加签任务ID
     * @return 结果
     */
    public int deleteById(@Param("id")String id);

    /**
     * 挂起任务
     * @param id 任务ID
     */
    public void hangTask(@Param("id") String id);

    /**
     * 恢复任务
     * @param id
     */
    public void restoreTask(@Param("id") String id);

    /**
     * 终止流程时删除任务
     * @param actId 流程实例ID
     */
    public void deleteByActId(@Param("actId") String actId);

    /**
     * 根据source递归删除任务
     * @param viewHiTask
     */
    public void delByTaskId(ViewHiTask viewHiTask);

    /**
     * 根据sourceId删除任务
     * @param sourceId 原任务ID
     */
    public void delBySourceId(@Param("sourceId") String sourceId);

    /**
     * 根据sourceId查询任务
     * @param sourceId 原任务ID
     */
    public List<WfActRuTask> findBySourceId(@Param("sourceId") String sourceId);

    /**
     * 修改流程审批人
     * @param id 任务ID
     * @param assignee 新的审批人
     */
    public void updateAssignee(@Param("id")String id,@Param("assignee") String assignee);

}
